package com.donfu.system.domain.house;

import java.math.BigDecimal;
import java.util.Date;

import com.donfu.common.core.domain.BaseEntity;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.donfu.common.annotation.Excel;

/**
 * 订单信息对象 house_order
 * 
 * @author donfu
 * @date 2021-12-06
 */
public class HouseOrder extends BaseEntity
{
    private static final long serialVersionUID = 1L;

    /** 主键Id */
    private Long id;

    /** 用户表的用户ID */
    @Excel(name = "用户表的用户ID")
    private Long userId;

    /** 订单编号 */
    @Excel(name = "订单编号")
    private String orderSn;

    /** 订单状态 1待付款 2待发货 3待收货 4待评价 5已完成 */
    @Excel(name = "订单状态 1待付款 2待发货 3待收货 4待评价 5已完成")
    private Integer orderStatus;

    /** 售后状态，0是可申请，1是用户已申请，2是管理员审核通过，3是管理员退款成功，4是管理员审核拒绝，5是用户已取消 */
    @Excel(name = "售后状态，0是可申请，1是用户已申请，2是管理员审核通过，3是管理员退款成功，4是管理员审核拒绝，5是用户已取消")
    private Integer aftersaleStatus;

    /** 收货人名称 */
    @Excel(name = "收货人名称")
    private String consignee;

    /** 收货人手机号 */
    @Excel(name = "收货人手机号")
    private String mobile;

    /** 收货具体地址 */
    @Excel(name = "收货具体地址")
    private String address;

    /** 用户订单留言 */
    @Excel(name = "用户订单留言")
    private String message;

    /** 商品总费用 */
    @Excel(name = "商品总费用")
    private BigDecimal goodsPrice;

    /** 配送费用 */
    @Excel(name = "配送费用")
    private BigDecimal freightPrice;

    /** 优惠券减免 */
    @Excel(name = "优惠券减免")
    private BigDecimal couponPrice;

    /** 用户积分减免 */
    @Excel(name = "用户积分减免")
    private BigDecimal integralPrice;

    /** 团购优惠价减免 */
    @Excel(name = "团购优惠价减免")
    private BigDecimal grouponPrice;

    /** 订单费用， = goods_price + freight_price - coupon_price */
    @Excel(name = "订单费用， = goods_price + freight_price - coupon_price")
    private BigDecimal orderPrice;

    /** 实付费用， = order_price - integral_price */
    @Excel(name = "实付费用， = order_price - integral_price")
    private BigDecimal actualPrice;

    /** 微信付款编号 */
    @Excel(name = "微信付款编号")
    private String payId;

    /** 微信付款时间 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "微信付款时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date payTime;

    /** 发货编号 */
    @Excel(name = "发货编号")
    private String shipSn;

    /** 发货快递公司 */
    @Excel(name = "发货快递公司")
    private String shipChannel;

    /** 发货开始时间 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "发货开始时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date shipTime;

    /** 实际退款金额，（有可能退款金额小于实际支付金额） */
    @Excel(name = "实际退款金额，", readConverterExp = "有=可能退款金额小于实际支付金额")
    private BigDecimal refundAmount;

    /** 退款方式 */
    @Excel(name = "退款方式")
    private String refundType;

    /** 退款备注 */
    @Excel(name = "退款备注")
    private String refundContent;

    /** 退款时间 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "退款时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date refundTime;

    /** 用户确认收货时间 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "用户确认收货时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date confirmTime;

    /** 待评价订单商品数量 */
    @Excel(name = "待评价订单商品数量")
    private Integer comments;

    /** 订单关闭时间 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "订单关闭时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date endTime;

    /** 创建时间 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "创建时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date addTime;

    /** 逻辑删除 */
    @Excel(name = "逻辑删除")
    private Integer deleted;

    /** 管理员留言 */
    private String adminMsg;

    public String getAdminMsg() {
        return adminMsg;
    }

    public void setAdminMsg(String adminMsg) {
        this.adminMsg = adminMsg;
    }

    public void setId(Long id)
    {
        this.id = id;
    }

    public Long getId() 
    {
        return id;
    }
    public void setUserId(Long userId) 
    {
        this.userId = userId;
    }

    public Long getUserId() 
    {
        return userId;
    }
    public void setOrderSn(String orderSn) 
    {
        this.orderSn = orderSn;
    }

    public String getOrderSn() 
    {
        return orderSn;
    }
    public void setOrderStatus(Integer orderStatus) 
    {
        this.orderStatus = orderStatus;
    }

    public Integer getOrderStatus() 
    {
        return orderStatus;
    }
    public void setAftersaleStatus(Integer aftersaleStatus) 
    {
        this.aftersaleStatus = aftersaleStatus;
    }

    public Integer getAftersaleStatus() 
    {
        return aftersaleStatus;
    }
    public void setConsignee(String consignee) 
    {
        this.consignee = consignee;
    }

    public String getConsignee() 
    {
        return consignee;
    }
    public void setMobile(String mobile) 
    {
        this.mobile = mobile;
    }

    public String getMobile() 
    {
        return mobile;
    }
    public void setAddress(String address) 
    {
        this.address = address;
    }

    public String getAddress() 
    {
        return address;
    }
    public void setMessage(String message) 
    {
        this.message = message;
    }

    public String getMessage() 
    {
        return message;
    }
    public void setGoodsPrice(BigDecimal goodsPrice) 
    {
        this.goodsPrice = goodsPrice;
    }

    public BigDecimal getGoodsPrice() 
    {
        return goodsPrice;
    }
    public void setFreightPrice(BigDecimal freightPrice) 
    {
        this.freightPrice = freightPrice;
    }

    public BigDecimal getFreightPrice() 
    {
        return freightPrice;
    }
    public void setCouponPrice(BigDecimal couponPrice) 
    {
        this.couponPrice = couponPrice;
    }

    public BigDecimal getCouponPrice() 
    {
        return couponPrice;
    }
    public void setIntegralPrice(BigDecimal integralPrice) 
    {
        this.integralPrice = integralPrice;
    }

    public BigDecimal getIntegralPrice() 
    {
        return integralPrice;
    }
    public void setGrouponPrice(BigDecimal grouponPrice) 
    {
        this.grouponPrice = grouponPrice;
    }

    public BigDecimal getGrouponPrice() 
    {
        return grouponPrice;
    }
    public void setOrderPrice(BigDecimal orderPrice) 
    {
        this.orderPrice = orderPrice;
    }

    public BigDecimal getOrderPrice() 
    {
        return orderPrice;
    }
    public void setActualPrice(BigDecimal actualPrice) 
    {
        this.actualPrice = actualPrice;
    }

    public BigDecimal getActualPrice() 
    {
        return actualPrice;
    }
    public void setPayId(String payId) 
    {
        this.payId = payId;
    }

    public String getPayId() 
    {
        return payId;
    }
    public void setPayTime(Date payTime) 
    {
        this.payTime = payTime;
    }

    public Date getPayTime() 
    {
        return payTime;
    }
    public void setShipSn(String shipSn) 
    {
        this.shipSn = shipSn;
    }

    public String getShipSn() 
    {
        return shipSn;
    }
    public void setShipChannel(String shipChannel) 
    {
        this.shipChannel = shipChannel;
    }

    public String getShipChannel() 
    {
        return shipChannel;
    }
    public void setShipTime(Date shipTime) 
    {
        this.shipTime = shipTime;
    }

    public Date getShipTime() 
    {
        return shipTime;
    }
    public void setRefundAmount(BigDecimal refundAmount) 
    {
        this.refundAmount = refundAmount;
    }

    public BigDecimal getRefundAmount() 
    {
        return refundAmount;
    }
    public void setRefundType(String refundType) 
    {
        this.refundType = refundType;
    }

    public String getRefundType() 
    {
        return refundType;
    }
    public void setRefundContent(String refundContent) 
    {
        this.refundContent = refundContent;
    }

    public String getRefundContent() 
    {
        return refundContent;
    }
    public void setRefundTime(Date refundTime) 
    {
        this.refundTime = refundTime;
    }

    public Date getRefundTime() 
    {
        return refundTime;
    }
    public void setConfirmTime(Date confirmTime) 
    {
        this.confirmTime = confirmTime;
    }

    public Date getConfirmTime() 
    {
        return confirmTime;
    }
    public void setComments(Integer comments) 
    {
        this.comments = comments;
    }

    public Integer getComments() 
    {
        return comments;
    }
    public void setEndTime(Date endTime) 
    {
        this.endTime = endTime;
    }

    public Date getEndTime() 
    {
        return endTime;
    }
    public void setAddTime(Date addTime) 
    {
        this.addTime = addTime;
    }

    public Date getAddTime() 
    {
        return addTime;
    }
    public void setDeleted(Integer deleted) 
    {
        this.deleted = deleted;
    }

    public Integer getDeleted() 
    {
        return deleted;
    }

    @Override
    public String toString() {
        return "HouseOrder{" +
                "id=" + id +
                ", userId=" + userId +
                ", orderSn='" + orderSn + '\'' +
                ", orderStatus=" + orderStatus +
                ", aftersaleStatus=" + aftersaleStatus +
                ", consignee='" + consignee + '\'' +
                ", mobile='" + mobile + '\'' +
                ", address='" + address + '\'' +
                ", message='" + message + '\'' +
                ", goodsPrice=" + goodsPrice +
                ", freightPrice=" + freightPrice +
                ", couponPrice=" + couponPrice +
                ", integralPrice=" + integralPrice +
                ", grouponPrice=" + grouponPrice +
                ", orderPrice=" + orderPrice +
                ", actualPrice=" + actualPrice +
                ", payId='" + payId + '\'' +
                ", payTime=" + payTime +
                ", shipSn='" + shipSn + '\'' +
                ", shipChannel='" + shipChannel + '\'' +
                ", shipTime=" + shipTime +
                ", refundAmount=" + refundAmount +
                ", refundType='" + refundType + '\'' +
                ", refundContent='" + refundContent + '\'' +
                ", refundTime=" + refundTime +
                ", confirmTime=" + confirmTime +
                ", comments=" + comments +
                ", endTime=" + endTime +
                ", addTime=" + addTime +
                ", deleted=" + deleted +
                ", adminMsg=" + adminMsg +
                '}';
    }
}
